package com.springboot.file.util.easyexcel.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * Excel导入校验注解
 * 提供多种校验功能，包括非空校验、数值范围校验等
 * 用于各类监听器中进行数据校验
 */
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface ExcelValidate {
    /**
     * 字段名称，用于错误提示
     */
    String fieldName() default "";
    
    /**
     * 错误提示信息
     */
    String message() default "";
    
    /**
     * 是否必填（非空校验）
     */
    boolean required() default false;
    
    /**
     * 非空校验的错误提示信息
     */
    String requiredMessage() default "不能为空";
    
    /**
     * 字符串最小长度
     */
    int minLength() default -1;
    
    /**
     * 字符串最大长度
     */
    int maxLength() default -1;
    
    /**
     * 数值最小值（仅适用于数值类型）
     */
    double min() default Double.MIN_VALUE;
    
    /**
     * 数值最大值（仅适用于数值类型）
     */
    double max() default Double.MAX_VALUE;
    
    /**
     * 正则表达式校验
     */
    String regex() default "";
    
    /**
     * 自定义校验类，必须实现ExcelValidator接口
     */
    Class<?> validator() default void.class;
} 